// pages/mine/mycourse/mycourse.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tab: 0, // 0: 基础课程, 1: 进阶课程
    basicMyCourses: [],
    advancedMyCourses: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadMyCourses();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.loadMyCourses();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 加载我的课程列表
  loadMyCourses() {
    const userId = wx.getStorageSync('userId');
    console.log('当前用户ID:', userId); // 添加日志输出userId
    if (!userId) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }

    // 获取我的课程（状态为1，即已学习的）
    wx.request({
      url: 'http://localhost:8080/mycourses/user/' + userId,
      method: 'GET',
      data: {
        status: 1
      },
      success: (res) => {
        console.log('获取我的课程接口返回数据:', res.data); // 添加日志输出后端返回数据
        if (res.data.success && res.data.data && res.data.data.length > 0) {
          const myCourses = res.data.data;
          const coursePromises = myCourses.map(myCourse => {
            return new Promise((resolve, reject) => {
              wx.request({
                url: 'http://localhost:8080/courses/' + myCourse.courseId,
                method: 'GET',
                success: (courseRes) => {
                  if (courseRes.data.success && courseRes.data.data) {
                    // 将myCourse信息和course详情合并
                    const fullCourseData = {
                      id: myCourse.courseId, // 使用courseId作为唯一标识
                      title: courseRes.data.data.title, // 课程标题
                      teacher: courseRes.data.data.authorNickname || '未知教师', // 教师昵称
                      desc: courseRes.data.data.introduce || '', // 课程简介
                      img: courseRes.data.data.coverImg ? (courseRes.data.data.coverImg.startsWith('http') ? courseRes.data.data.coverImg : 'http://localhost:8080' + courseRes.data.data.coverImg) : '/images/default-video.png', // 课程封面图
                      level: courseRes.data.data.level // 课程级别
                    };
                    resolve(fullCourseData);
                  } else {
                    console.error('获取课程详情失败:', courseRes);
                    resolve(null); // 或者reject(courseRes.data.message)
                  }
                },
                fail: (err) => {
                  console.error('获取课程详情接口调用失败:', err);
                  reject(err);
                }
              });
            });
          });

          // 等待所有课程详情请求完成
          Promise.all(coursePromises).then(fullCourses => {
            const basic = [];
            const advanced = [];

            fullCourses.forEach(courseData => {
              if (courseData) { // 过滤掉获取失败的课程
                if (courseData.level === 0) {
                  basic.push(courseData);
                } else if (courseData.level === 1) {
                  advanced.push(courseData);
                }
              }
            });

            this.setData({
              basicMyCourses: basic,
              advancedMyCourses: advanced
            });
            console.log('我的课程数据已更新:', this.data.basicMyCourses, this.data.advancedMyCourses);

          }).catch(error => {
            console.error('处理课程详情Promise失败:', error);
            wx.showToast({
              title: '加载课程详情失败',
              icon: 'none'
            });
          });

        } else {
          console.log('获取我的课程列表为空或失败:', res);
          // 可以选择性地显示"无课程"提示
          this.setData({
            basicMyCourses: [],
            advancedMyCourses: []
          });
        }
      },
      fail: (err) => { // 添加错误日志输出
        console.error('获取我的课程接口调用失败:', err);
        wx.showToast({
          title: '网络错误',
          icon: 'none'
        });
      }
    });
  },

  // tab 切换事件处理函数
  onTabChange(event) {
    const tab = event.currentTarget.dataset.tab;
    this.setData({
      tab: tab
    });
  },

  // 跳转到课程详情页
  goToCourseDetail(event) {
    const courseId = event.currentTarget.dataset.courseId;
    wx.navigateTo({
      url: '/pages/healthlife/coursedetails/coursedetails?id=' + courseId
    });
  }
})